package com.yhk.queue;

import java.util.LinkedList;

/**
 * @version 1.0
 * @author moresuo
 * @date 2024/10/9 21:28
 * @注释 链表实现队列
 */
public class MyLinkedQueue<E> {
    private final LinkedList<E> list = new LinkedList<>();

    /**
     * 向队尾插入元素
     * @param e 元素
     */
    public void push(E e) {
        //向链表尾部插入元素
        list.addLast(e);
    }

    /**
     * 从队头删除元素
     * @return
     */
    public E pop() {
        //删除链表头部元素
        return list.removeFirst();
    }

    /**
     * 查看队头元素
     * @return
     */
    public E peek() {
        //返回链表头部元素
        return list.getFirst();
    }

    /**
     * 获取队列元素个数
     * @return
     */
    public int size() {
        return list.size();
    }
}
